package com.yowasa.xiuxian.engine.travel.adventure;

import com.google.common.collect.Sets;
import com.yowasa.xiuxian.engine.BattleEngine;
import com.yowasa.xiuxian.engine.CommonEngine;
import com.yowasa.xiuxian.engine.HoneEngine;
import com.yowasa.xiuxian.engine.hone.MentalInterface;
import com.yowasa.xiuxian.engine.travel.AdventureInterface;
import com.yowasa.xiuxian.entity.bo.user.UserBO;
import com.yowasa.xiuxian.entity.enums.MapEnum;
import com.yowasa.xiuxian.entity.enums.RefreshType;
import com.yowasa.xiuxian.entity.enums.StageEnum;
import com.yowasa.xiuxian.service.helper.ResourceHelper;
import com.yowasa.xiuxian.service.helper.UserHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Set;

/**
 * 侠客行
 * 新手村游历获得 100年仅能遇到一次 悟性低于20 始明之青以下才能获取
 */
@Component
public class XiaKeXing implements AdventureInterface {

    @Autowired
    private ResourceHelper resourceHelper;
    @Autowired
    private UserHelper userHelper;

    /**
     * 悟性低于20
     *
     * @param user
     * @return
     */
    @Override
    public boolean limitCheck(UserBO user) {
        if (user.getUserAttr().getUnd() > 30) {
            return false;
        }
        if (user.getStage() > StageEnum.ZHU_JI.getLevel()) {
            return false;
        }
        if ("太玄经".equals(user.getUserConfig().getMental())) {
            return false;
        }
        if (resourceHelper.checkHaveResource(user.getGuildId(), this.getClass().getName(), RefreshType.LOCK_TIME)) {
            return true;
        } else {
            return false;
        }
    }

    @Override
    public Set<MapEnum> limitMaps() {
        //新手村only
        return Sets.newHashSet(MapEnum.QING_QUAN_ZHEN);
    }

    @Override
    public boolean isConflict() {
        return true;
    }

    @Override
    public String exec(UserBO user) {
        resourceHelper.lockResource(user.getGuildId(), this.getClass().getName(), 100 * 360);
        MentalInterface mentalInterface = HoneEngine.mentalMap.get("太玄经");
        user.getUserConfig().setMental("太玄经");
        user.getUserConfig().getCanStudyStrategies().addAll(mentalInterface.bsList());
        userHelper.lockUser(user,30,user.getName()+"接受传承中");
        return "在村庄游历时遇到一个石碑 上面印满了蝌蚪一样的文字，大家都看不懂但是此碑是仙人遗物，无法被破坏，就一直留存在此处，" +
                "你观摩这些目中所见都是一把把形态、剑势、剑意各各不同的利剑，所有的文字毫无实际的意义可言，感觉这些蝌蚪仿若活了过来，钻进了你的脑海，顺着剑势、剑意看去，内息自然而然随之流动，手舞足蹈，待得从头至尾看完一遍，这项神功已是被你练成了，正所谓太初有道，道与神同在，道就是神，神之道法自然，众妙之门，玄而又玄，你获得了太玄经的修炼心法（替换原有心法）";
    }


}
